package org.dromara.apartment.domain.vo;

import com.baomidou.mybatisplus.annotation.TableLogic;
import org.dromara.apartment.domain.RoomInfo;
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.common.translation.annotation.Translation;
import org.dromara.common.translation.constant.TransConstant;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
import java.util.List;


/**
 * 房间信息视图对象 room_info
 *
 * @author ckj
 * @date 2025-06-24
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = RoomInfo.class)
public class RoomInfoVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 房间id
     */
    @ExcelProperty(value = "房间id")
    private Long id;

    /**
     * 所属公寓id
     */
    @ExcelProperty(value = "所属公寓id")
    private Long apartmentId;

    /**
     * 公寓名称
     */
    private String apartmentName;

    /**
     * 房间号
     */
    @ExcelProperty(value = "房间号")
    private String roomNumber;

    /**
     * 房间名称
     */
    @ExcelProperty(value = "房间名称")
    private String roomName;

    /**
     * 租金（元/月）
     */
    @ExcelProperty(value = "租金", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "元=/月")
    private Integer rent;

    /**
     * 是否发布
     */
    @ExcelProperty(value = "是否发布")
    private Boolean isRelease;

    /**
     * 是否入住
     */
    @ExcelProperty(value = "是否入住")
    private Boolean isUsed;

    /**
     * 是否推荐
     */
    @ExcelProperty(value = "是否推荐")
    private Boolean isRecommend;

    /**
     * 缩略图
     */
    private String thumbnail;

    /**
     * 缩略图URL
     */
    @Translation(type = TransConstant.OSS_ID_TO_URL, mapper = "thumbnail")
    private String thumbnailUrl;

    /**
     * 排序
     */
    private Integer sort;

    /**
     * 图片列表
     */
    private String graphBoList;

    /**
     * 是否删除
     */
    private Boolean delFlag;

    /**
     * 标签列表
     */
    private List<LabelInfoVo> labelInfoList;

    /**
     * 配套列表
     */
    private List<FacilityInfoVo> facilityInfoList;

    /**
     * 属性值列表
     */
    private List<AttrValueVo> attrValueVoList;

    /**
     * 支付方式列表
     */
    private List<PaymentTypeVo> paymentTypeVoList;


}
